技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
25
0
Software Development
RISC-V 與處理器之架構學習及應用
系列 第
25
篇
[Day25] Translating and Running a Program: CALL (1/5)
16th鐵人賽
凱特
2024-10-09 02:05:06
414 瀏覽
分享至
程式編譯過程
:
將高階語言(例如 C 程式)轉換為機器語言的過程分為幾個步驟:
高階語言(C 程式)
:經由編譯器轉換成組合語言。
組合語言
:經由組譯器轉換成機器語言。
機器語言
:由硬體架構來執行。
這個過程的每個步驟都有其對應的描述,從硬體架構到邏輯電路描述。
C 程式的執行
:
Translator
:負責將程式從一種語言轉換成另一種語言,如將 C 程式轉換為組合語言,再轉換成機器語言。這通常會提高效率和性能。
Interpreter
:直接執行原始語言程式,與 Translator 不同,不需要進行語言轉換。
舉例來說,C 程式和 RISC-V 程式可以透過模擬器來解釋執行,這對學習和除錯很有幫助。
編譯 C 程式的步驟
:
將 C 程式轉換為可執行檔的具體步驟:
Compiler
:將
.c
檔案轉換成
.s
(組合語言)。
Assembler
:將
.s
檔案轉換成
.o
(機器語言模組)。
Linker
:將
.o
檔案與其他物件檔案連結,生成可執行檔。
Loader
:將可執行檔載入記憶體並開始執行。
留言
追蹤
檢舉
上一篇
[Day24] RISC-V 單周期 Datapath 與控制邏輯概述
下一篇
[Day26] CALL: Assembler (2/5)
系列文
RISC-V 與處理器之架構學習及應用
共
30
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
26
[Day26] CALL: Assembler (2/5)
27
[Day27] CALL: Linker (3/5)
28
[Day28] CALL: Loader (4/5)
29
[Day29] 總結與流程 (5/5)
30
[Day30] 從抽象層次到效能改善
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
403
組
團體組數
13
組
累計文章數
2897
篇
最後報名日
9/15
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
17th鐵人賽
windows
php
c#
windows server
linux
css
react
熱門問題
不知道網路紅隊的要去那加公司
更換FW後Public IP service無法使用
鼎新ERP欄位可修改預設值嗎
Ansible 連線主機的 port 不是 22 遇到的問題
備份映像檔
Outlook 寄件備份消失問題 (已解決)
請問有人遇過在lightsail上部屬fastapi失敗的案例?
aws ec2 檢查故障問題
IIS 管理員 連線功能不見
熱門回答
鼎新ERP欄位可修改預設值嗎
不知道網路紅隊的要去那加公司
Ansible 連線主機的 port 不是 22 遇到的問題
更換FW後Public IP service無法使用
備份映像檔
熱門文章
什麼是 Signal ?
第10天,No-Code 快速上線又省錢 / 原汁排骨湯 台北最好喝的排骨湯(台北萬華)| 30天滷肉飯
序: AI 加速編碼後,你該學什麼?
第11天,LibreOffice 更省錢 / 司機俱樂部 宵夜好選擇(台北松山)| 30天滷肉飯
第12天,即時通訊軟體選擇 / 金峰滷肉飯 台北名店(台北中正)| 30天滷肉飯
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}